package com.example.design.leetcode.arrayAndString;

//剑指 Offer 45. 把数组排成最小的数 - 解决方案
//题目描述
//        输入一个非负整数数组，把数组里所有数字拼接起来排成一个数，打印能拼接出的所有数字中最小的一个。

//        示例 1:
//        输入: [10,2]
//        输出: "102"

//        示例 2:
//        输入: [3,30,34,5,9]
//        输出: "3033459"

//        提示: 0<nums.length<=100

import java.util.ArrayList;
import java.util.List;

// 标签：排序
public class Practice08 {
    public String minNumber(int[] nums) {
        List<String> strList = new ArrayList<>();
        for (int num : nums) {
            strList.add(num+"");
        }

        strList.sort((a,b)->(a+b).compareTo((b+a)));

        StringBuilder sb = new StringBuilder();
        for (String s : strList) {
            sb.append(s);
        }

        return sb.toString();
    }
}